<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // 数组的拓展方法 -> 官方给定的专门操作数组的方法


    // sort()  数组排序
    // a. 字符排序 -> 比较的是字符对应的ASCII码(第一个不同就比第一个,第一个相同就比第二个)
    //   "15" > "3" -> false

    // b. 纯数字排序 -> 比较数值大小(从小到大  从大到小)
    // c. 数组乱序  -> 打乱数组

    // 返回值: 排序后的原数组
    // 是否影响原数组: 影响

    // a. 字符排序 -> 比较的是字符对应的ASCII码(第一个不同就比第一个,第一个相同就比第二个)
    // var list = [2, 51, 9, 24, 3, 6, 76, 66, 39, 48, 11];
    // var result = list.sort();
    // console.log("返回值", result);
    // console.log("list", list);

    // b. 纯数字排序 -> 比较数值大小(从小到大  从大到小)
    // 用法:向sort()方法中传入一个函数作为参数(规定纯数字排序的方式),该函数有两个形式参数(a,b)表示每次参数比较的前后两个元素,根据回调函数的返回值确定排序的方式
    // return a - b;     a - b > 0  前一个数大于后一个时交换两个数的位置  =>  从小到大
    // return b - a;     b - a > 0  => b >a  前一个数小于后一个时交换两个数的位置  =>  从大到小

    // var list = [2, 51, 9, 24, 3, 6, 76, 66, 39, 48, 11];
    // var result = list.sort(function (a, b) {
    //     console.log(a, b);   // 参数比较的两个元素 => 从list中取
    //     return a - b; // 从小到大
    //     // return b - a;  // 从大到小
    // });
    // console.log("返回值", result);
    // console.log("list", list);


    // c. 数组乱序  -> 打乱数组
    var list = [1, 2, 3, 4, 5, 6, 7, 8, 9];
    var result = list.sort(function () {
        // 参数比较的两个元素 => 随机 -> 也可能不交换位置 => 随机交换位置
        return Math.random() - Math.random();
    });
    console.log("返回值", result);
    console.log("list", list);




</script>

</html>